#include <irrlicht.h>
#include <vector>
#include <iostream>
#include <irrKlang.h>
#include <time.h>
#include "pugixml.hpp"
#include <fstream>
#include <math.h>

using namespace irr;
using namespace irr::core;
using namespace irr::gui;
using namespace irr::video;
using namespace std;
using namespace irrklang;
using namespace pugi;

namespace Colour {
	const SColor AlphaKey = SColor(255,163,73,164);
	const SColor Black = SColor(255,0,0,0);
	const SColor CloakBlue = SColor(255,184,184,248);
	const SColor CloakGreen = SColor(255,136,213,0);
	const SColor CloakRed = SColor(255,248,56,0);
	const SColor Grey = SColor(255,127,127,127);
	const SColor Intro = SColor(255,154,152,103);
	const SColor ItemDarkBlue = SColor(255,0,0,132);
	const SColor ItemRed = SColor(255,198,33,0);
	const SColor QuadrantTan = SColor(255,255,199,132);
	const SColor White = SColor(255,255,255,255);
}
using namespace Colour;

namespace GameSettings {
	const s32 ActionResetInterval = 200;
	const f32 cDeadZone = .5;
	const double cEpsilon = .000001;
	const double cPi = 3.14159;
}
using namespace GameSettings;

enum eAction {
	ActionReset,
	ActionUseItem,
	ActionWalk
};
enum eBoomerangType {
	BoomerangWooden,
	BoomerangMetal
};
enum eCloakColour {
	BlueCloak,
	GreenCloak,
	RedCloak
};
enum eDirection {
	North = 90,
	NorthEast = 45,
	East = 0,
	SouthEast = 315,
	South = 270,
	SouthWest = 225,
	West = 180,
	NorthWest = 135
};
enum eLinkImage {
	GreenSmallWalkSouth1,
	GreenSmallWalkWest1,
	GreenSmallWalkEast1,
	GreenWalkNorth1,
	GreenLungeSouth,
	GreenLungeWest,
	GreenLargeWalkSouth1,
	GreenLargeWalkWest1,
	GreenLargeWalkEast1,
	GreenSmallWalkSouth2,
	GreenSmallWalkWest2,
	GreenSmallWalkEast2,
	GreenWalkNorth2,
	GreenLungeNorth,
	GreenLungeEast,
	GreenLargeWalkSouth2,
	GreenLargeWalkWest2,
	GreenLargeWalkEast2,
	BlueSmallWalkSouth1,
	BlueSmallWalkWest1,
	BlueSmallWalkEast1,
	BlueWalkNorth1,
	BlueLungeSouth,
	BlueLungeWest,
	BlueLargeWalkSouth1,
	BlueLargeWalkWest1,
	BlueLargeWalkEast1,
	BlueSmallWalkSouth2,
	BlueSmallWalkWest2,
	BlueSmallWalkEast2,
	BlueWalkNorth2,
	BlueLungeNorth,
	BlueLungeEast,
	BlueLargeWalkSouth2,
	BlueLargeWalkWest2,
	BlueLargeWalkEast2,
	RedSmallWalkSouth1,
	RedSmallWalkWest1,
	RedSmallWalkEast1,
	RedWalkNorth1,
	RedLungeSouth,
	RedLungeWest,
	RedLargeWalkSouth1,
	RedLargeWalkWest1,
	RedLargeWalkEast1,
	RedSmallWalkSouth2,
	RedSmallWalkWest2,
	RedSmallWalkEast2,
	RedWalkNorth2,
	RedLungeNorth,
	RedLungeEast,
	RedLargeWalkSouth2,
	RedLargeWalkWest2,
	RedLargeWalkEast2
};
enum eRealmType {
	RealmCave,
	RealmDungeon,
	ReaknOverworld
};
enum eShieldType {
	LargeShield,
	SmallShield
};
enum eSound {
	sfxBoomerang
};
enum eSwordType {
	MagicalSword,
	WhiteSword,
	WoodenSword
};
